<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=no">
  <meta name="description" content="API docs for the spawn method from the Isolate class, for the Dart programming language.">
  <title>spawn method - Isolate class - dart:isolate library - Dart API</title>
  <!-- required because all the links are pseudo-absolute -->
  <base href="../..">

  <link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:500,400i,400,300|Source+Sans+Pro:400,300,700" rel="stylesheet">
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <link rel="stylesheet" href="static-assets/github.css">
  <link rel="stylesheet" href="static-assets/styles.css">
  <link rel="icon" href="static-assets/favicon.png">
  
</head>

<body>

<div id="overlay-under-drawer"></div>

<header id="title">
  <button id="sidenav-left-toggle" type="button">&nbsp;</button>
  <ol class="breadcrumbs gt-separated dark hidden-xs">
    <li><a href="index.html">shake</a></li>
    <li><a href="dart-isolate/dart-isolate-library.html">dart:isolate</a></li>
    <li><a href="dart-isolate/Isolate-class.html">Isolate</a></li>
    <li class="self-crumb">spawn&lt;<wbr><span class="type-parameter">T</span>&gt; method</li>
  </ol>
  <div class="self-name">spawn</div>
  <form class="search navbar-right" role="search">
    <input type="text" id="search-box" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
  </form>
</header>

<main>

  <div id="dartdoc-sidebar-left" class="col-xs-6 col-sm-3 col-md-2 sidebar sidebar-offcanvas-left">
    <header id="header-search-sidebar" class="hidden-l">
      <form class="search-sidebar" role="search">
        <input type="text" id="search-sidebar" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
      </form>
    </header>
    
    <ol class="breadcrumbs gt-separated dark hidden-l" id="sidebar-nav">
      <li><a href="index.html">shake</a></li>
      <li><a href="dart-isolate/dart-isolate-library.html">dart:isolate</a></li>
      <li><a href="dart-isolate/Isolate-class.html">Isolate</a></li>
      <li class="self-crumb">spawn&lt;<wbr><span class="type-parameter">T</span>&gt; method</li>
    </ol>
    
    <h5>Isolate class</h5>
    <ol>
      <li class="section-title"><a href="dart-isolate/Isolate-class.html#constructors">Constructors</a></li>
      <li><a href="dart-isolate/Isolate/Isolate.html">Isolate</a></li>
    
      <li class="section-title">
        <a href="dart-isolate/Isolate-class.html#instance-properties">Properties</a>
      </li>
      <li><a href="dart-isolate/Isolate/controlPort.html">controlPort</a></li>
      <li><a href="dart-isolate/Isolate/errors.html">errors</a></li>
      <li><a href="dart-isolate/Isolate/pauseCapability.html">pauseCapability</a></li>
      <li><a href="dart-isolate/Isolate/terminateCapability.html">terminateCapability</a></li>
      <li class="inherited"><a href="dart-core/Object/hashCode.html">hashCode</a></li>
      <li class="inherited"><a href="dart-core/Object/runtimeType.html">runtimeType</a></li>
    
      <li class="section-title"><a href="dart-isolate/Isolate-class.html#instance-methods">Methods</a></li>
      <li><a href="dart-isolate/Isolate/addErrorListener.html">addErrorListener</a></li>
      <li><a href="dart-isolate/Isolate/addOnExitListener.html">addOnExitListener</a></li>
      <li><a href="dart-isolate/Isolate/kill.html">kill</a></li>
      <li><a href="dart-isolate/Isolate/pause.html">pause</a></li>
      <li><a href="dart-isolate/Isolate/ping.html">ping</a></li>
      <li><a href="dart-isolate/Isolate/removeErrorListener.html">removeErrorListener</a></li>
      <li><a href="dart-isolate/Isolate/removeOnExitListener.html">removeOnExitListener</a></li>
      <li><a href="dart-isolate/Isolate/resume.html">resume</a></li>
      <li><a href="dart-isolate/Isolate/setErrorsFatal.html">setErrorsFatal</a></li>
      <li class="inherited"><a href="dart-core/Object/noSuchMethod.html">noSuchMethod</a></li>
      <li class="inherited"><a href="dart-core/Object/toString.html">toString</a></li>
    
      <li class="section-title inherited"><a href="dart-isolate/Isolate-class.html#operators">Operators</a></li>
      <li class="inherited"><a href="dart-core/Object/operator_equals.html">operator ==</a></li>
    
      <li class="section-title"><a href="dart-isolate/Isolate-class.html#static-properties">Static properties</a></li>
      <li><a href="dart-isolate/Isolate/current.html">current</a></li>
      <li><a href="dart-isolate/Isolate/packageConfig.html">packageConfig</a></li>
      <li><a class="deprecated" href="dart-isolate/Isolate/packageRoot.html">packageRoot</a></li>
    
      <li class="section-title"><a href="dart-isolate/Isolate-class.html#static-methods">Static methods</a></li>
      <li><a href="dart-isolate/Isolate/resolvePackageUri.html">resolvePackageUri</a></li>
      <li><a href="dart-isolate/Isolate/spawn.html">spawn</a></li>
      <li><a href="dart-isolate/Isolate/spawnUri.html">spawnUri</a></li>
    
      <li class="section-title"><a href="dart-isolate/Isolate-class.html#constants">Constants</a></li>
      <li><a href="dart-isolate/Isolate/beforeNextEvent-constant.html">beforeNextEvent</a></li>
      <li><a href="dart-isolate/Isolate/immediate-constant.html">immediate</a></li>
    </ol>
  </div><!--/.sidebar-offcanvas-->

  <div id="dartdoc-main-content" class="col-xs-12 col-sm-9 col-md-8 main-content">
      <div><h1>spawn&lt;<wbr><span class="type-parameter">T</span>&gt; method</h1></div>

    <section class="multi-line-signature">
      <span class="returntype"><a href="dart-async/Future-class.html">Future</a><span class="signature">&lt;<wbr><span class="type-parameter"><a href="dart-isolate/Isolate-class.html">Isolate</a></span>&gt;</span></span>
            <span class="name ">spawn</span>
&lt;<wbr><span class="type-parameter">T</span>&gt;(<wbr><span class="parameter" id="spawn-param-entryPoint"><span class="type-annotation">void</span> <span class="parameter-name">entryPoint</span>(<span class="parameter" id="entryPoint-param-message"><span class="type-annotation">T</span> <span class="parameter-name">message</span></span>), </span> <span class="parameter" id="spawn-param-message"><span class="type-annotation">T</span> <span class="parameter-name">message</span>, {</span> <span class="parameter" id="spawn-param-paused"><span class="type-annotation"><a href="dart-core/bool-class.html">bool</a></span> <span class="parameter-name">paused</span>: <span class="default-value">false</span>, </span> <span class="parameter" id="spawn-param-errorsAreFatal"><span class="type-annotation"><a href="dart-core/bool-class.html">bool</a></span> <span class="parameter-name">errorsAreFatal</span>, </span> <span class="parameter" id="spawn-param-onExit"><span class="type-annotation"><a href="dart-isolate/SendPort-class.html">SendPort</a></span> <span class="parameter-name">onExit</span>, </span> <span class="parameter" id="spawn-param-onError"><span class="type-annotation"><a href="dart-isolate/SendPort-class.html">SendPort</a></span> <span class="parameter-name">onError</span></span> })
      
    </section>
    <section class="desc markdown">
      <p>Creates and spawns an isolate that shares the same code as the current
isolate.</p>
<p>The argument <code>entryPoint</code> specifies the initial function to call
in the spawned isolate.
The entry-point function is invoked in the new isolate with <code>message</code>
as the only argument.</p>
<p>The function must be a top-level function or a static method
that can be called with a single argument,
that is, a compile-time constant function value
which accepts at least one positional parameter
and has at most one required positional parameter.
The function may accept any number of optional parameters,
as long as it <em>can</em> be called with just a single argument.
The function must not be the value of a function expression
or an instance method tear-off.</p>
<p>Usually the initial <code>message</code> contains a <a href="dart-isolate/SendPort-class.html">SendPort</a> so
that the spawner and spawnee can communicate with each other.</p>
<p>If the <code>paused</code> parameter is set to <code>true</code>,
the isolate will start up in a paused state,
just before calling the <code>entryPoint</code> function with the <code>message</code>,
as if by an initial call of <code>isolate.pause(isolate.pauseCapability)</code>.
To resume the isolate, call <code>isolate.resume(isolate.pauseCapability)</code>.</p>
<p>If the <code>errorsAreFatal</code>, <code>onExit</code> and/or <code>onError</code> parameters are provided,
the isolate will act as if, respectively, <a href="dart-isolate/Isolate/setErrorsFatal.html">setErrorsFatal</a>,
<a href="dart-isolate/Isolate/addOnExitListener.html">addOnExitListener</a> and <a href="dart-isolate/Isolate/addErrorListener.html">addErrorListener</a> were called with the
corresponding parameter and was processed before the isolate starts
running.</p>
<p>If <code>errorsAreFatal</code> is omitted, the platform may choose a default behavior
or inherit the current isolate's behavior.</p>
<p>You can also call the <a href="dart-isolate/Isolate/setErrorsFatal.html">setErrorsFatal</a>, <a href="dart-isolate/Isolate/addOnExitListener.html">addOnExitListener</a> and
<a href="dart-isolate/Isolate/addErrorListener.html">addErrorListener</a> methods on the returned isolate, but unless the
isolate was started as <code>paused</code>, it may already have terminated
before those methods can complete.</p>
<p>Returns a future which will complete with an <a href="dart-isolate/Isolate-class.html">Isolate</a> instance if the
spawning succeeded. It will complete with an error otherwise.</p>
    </section>
    
    <section class="summary source-code" id="source">
      <h2><span>Implementation</span></h2>
      <pre class="language-dart"><code class="language-dart">external static Future&lt;Isolate&gt; spawn&lt;T&gt;(
    void entryPoint(T message), T message,
    {bool paused: false,
    bool errorsAreFatal,
    SendPort onExit,
    SendPort onError});</code></pre>
    </section>

  </div> <!-- /.main-content -->

  <div id="dartdoc-sidebar-right" class="col-xs-6 col-sm-6 col-md-2 sidebar sidebar-offcanvas-right">
  </div><!--/.sidebar-offcanvas-->

</main>

<footer>
  <span class="no-break">
    shake 0.1.0
  </span>

  
</footer>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="static-assets/typeahead.bundle.min.js"></script>
<script src="static-assets/highlight.pack.js"></script>
<script src="static-assets/URI.js"></script>
<script src="static-assets/script.js"></script>


</body>

</html>
